﻿using HK.Core.Common.Protocol;
using HK.Core.Common.Protocol.Data;

namespace HK.Core.Serializable.Protocol.Data
{

    /// <summary>
    /// 序列化文件模式
    /// </summary>
    public enum SAssetMode
    {
        
        /// <summary>
        /// 无
        /// </summary>
        None = 0x00000000,
        /// <summary>
        /// 静态文件
        /// </summary>
        Static = 0x00000001,
        /// <summary>
        /// 编辑器文件模式
        /// </summary>
        Editor = 0x00000002
    }
    
    /// <summary>
    /// 接口 : 序列化资产头部
    /// </summary>
    public interface ISAssetHeader : IJsonData
    {
        /// <summary>
        /// 版本信息
        /// </summary>
        ISAssetVersion Version { get; }
        
        /// <summary>
        /// 创建时间Ticks
        /// </summary>
        long CreateTimeTicks { get; }
        
        /// <summary>
        /// 创建时间
        /// <para>* 格式 : YYYY/MM/DD HH:MM:SS</para>
        /// </summary>
        string CreateTimeTxt { get; }
        
        /// <summary>
        /// 更新时间Ticks
        /// </summary>
        long UpdateTimeTicks { get; }
        
        /// <summary>
        /// 更新时间
        /// <para>* 格式 : YYYY/MM/DD HH:MM:SS</para>
        /// </summary>
        string UpdateTimeTxt { get; }

#region Mode

        /// <summary>
        /// 序列化文件模式
        /// </summary>
        int Mode { get; }

        /// <summary>
        /// 编辑器标志位
        /// </summary>
        bool Editor { get; }

        /// <summary>
        /// 静态文件标志位
        /// </summary>
        bool Static { get; }

#endregion
        
        /// <summary>
        /// 目录
        /// </summary>
        string Dir { get; }

        /// <summary>
        /// 刷新
        /// </summary>
        void Refresh();
    }
    
}
